System and method for efficient information capture

ABSTRACT

Provided is a system and method for enabling a user to efficiently capture information from a data processing system user interface. A user performs information capture actions such as browsing user interface contexts, printing information, downloading information, clipping information to a clipboard, saving information, creating shortcuts, or other information capture actions. The user&#39;s data processing system use is monitored for information capture actions. Upon user invocation of a monitored information capture action, determination is automatically made if the action is redundant. If the information capture action is determined to be redundant, then a configurable alert is provided to the user. If the information capture action is determined to not be redundant, then the information capture action is permitted to continue.

FIELD OF THE INVENTION

[0001] The present invention relates generally to efficiently capturinginformation from data processing system user interfaces, and moreparticularly, to automatically preventing redundant information captureactions from data processing system user interfaces (e.g. preventingredundant browsing, printing, clipping, downloading, creating ofshortcuts, or other information capture actions).

BACKGROUND OF THE INVENTION

[0002] Internet connectivity has quickly become a tool for researchingall kinds of information. Many people use the internet in place ofencyclopedias and other hard copy sources of information. The internetis growing explosively with abundance of information, and provides openaccess of the information. The same links, or same documents, are oftenreferenced from different web sites. One browser method forautomatically indicating to a user that the link has already beenvisited is to highlight the link in a different color. However, thelinks of referencing pages are highlighted rather than notifying theuser when a previously visited page is in focus. Only the referencingpages have highlighted links. Web browsers, for example the MicrosoftInternet Explorer (Microsoft and Internet Explorer are trademarks ofMicrosoft corporation) or the Netscape Navigator (Netscape and Navigatorare registered trademarks of Netscape corporation, now owned by AmericaOnline (America Online is a trademark of American Online corporation)),maintain history information of which web site/page address (i.e.Uniform Resource Locator (URL) address) the user has transposed to. Thisenables highlighting links containing matching addresses. In the case ofthe Microsoft Internet Explorer, the history information also enablesusers to browse previously visited addresses, add previously visitedaddresses to a “Favorites” folder, or transpose to a previously visitedaddress with a simple mouse invocation. The history information is auseable record of where the user has been. There is no method of usingthe history information for automatic detection of redundancy in printactions, download actions, clipboard actions, save actions, short cutactions, or visit actions when the visited page is to be focused. The“Favorites” folder maintains short cuts to visited addresses forconvenient future selection to transpose to the address. The MicrosoftInternet Explorer does detect a duplicate short cut creation action if aduplicate is found in the “Favorites” folder, but this duplicatedetection is only upon interfacing directly with the “Favorites” folderinterface, and is not a system wide or even application wideimplementation, for example, to copy short cuts to another folder (outof the scope of “Favorites”), or to the user's desktop. The historyinformation is not used at all for the duplicate detection. Presence inthe “Favorites” folder dictates duplication. Right mouse clickrepeatedly on the same web address page for a short cut copy to a user'sdesktop, and the short cut will be copied multiple times without anyredundancy notification processing.

[0003] Also, if a user prints one or more pages of interest, there is nomethod for conveniently indicating that the page(s) were printed. Havingsuch an indication would prevent the user from redundantly printing thepage(s) again. Relying on human memory after printing many pages fromdifferent web sites may be difficult. While the user may browse historyinformation of web pages visited, it is tedious to figure out what wasprinted from which of the web pages.

[0004] A user who surfs the internet may also right mouse click on animage to save a local copy of the image file. There is no convenientmethod for knowing if the image has already been saved should a usersave many image files. Currently, the image file name uniqueness in aspecified target directory is all that allows detecting redundancy. Ifthe user puts the image file in another directory, or different websites use the same file name for different files, then file nameuniqueness does not provide an adequate redundancy check when the usergoes to save the file.

[0005] A user may clip information from a current user interfacecontext. The information can then be printed, pasted to a saved file, orused as the user sees fit to use the captured information. The user maybe faced with determining whether or not the information has beenpreviously clipped and used. An automated method is needed fordetermining if clips are redundant.

[0006] A user may also choose to download a file such as an executableprogram, zip file, documentation file, video file, audio file, or anyother file for download from the internet. There needs to be a methodfor determining redundancy while minimizing user interface actions.Manually browsing history information, or logs, through other options inthe user interface is inconvenient. It is desirable to notify the userof a redundant information capture action automatically upon the userperforming the action. Preventing the user from manually browsingexternal historical information sources is desirable.

[0007] Users also create short cuts to web sites and place them on theirdesktop or in certain folders. A method is needed for eliminating theproblem of accidentally creating multiple short cuts to the same place,program, or file.

[0008] Thus, information capture actions include browsing information inuser interface contexts (e.g. web page visits), printing information,downloading information, clipboard clipping information, savinginformation, copying shortcuts to information, or other informationcapture actions. Information capture actions all have the same objectiveof capturing information for the user. For user interface efficiency,and for maximizing productivity, information capture actions need anassociated convenient automated method for alerting the user when aredundant action is taking place.

SUMMARY OF THE INVENTION

[0009] The present invention is a system and method for enabling a userto efficiently capture information from a data processing system userinterface. A user performs information capture actions (ICAs) such asbrowsing user interfaces (e.g. internet web site/page visits), printinginformation, downloading information, clipping information to aclipboard, saving information, creating shortcuts, or other informationcapture actions. The user's data processing system use is monitored forinformation capture actions (ICAs) according to configurable trackingvariables. Upon user invocation of a monitored information captureaction (ICA), determination is automatically made if the action isredundant. If the information capture action (ICA) is determined to beredundant (i.e. repeated), then a configurable alert is provided to theuser. If the information capture action is determined to not beredundant, then the information capture action is permitted to continueand proceeds in the conventional manner.

[0010] In the preferred embodiment, ICAs are maintained to redundancydetermination history information (RDHI). A user invoked ICA isautomatically compared to the previously performed ICAs maintained inthe redundancy determination history information (RDHI). If a match isfound, then the ICA is determined to be redundant. A match isconfigurably determined by the ICA being equivalent to a previouslyperformed ICA, a subset to a previously performed ICA, or a superset toa previously performed ICA. An alert provided is user configurable forincluding an audible notification with automatic cancellation of theICA, a visual notification with automatic cancellation of the ICA, or aprompt with user reconciliation required. User configurable trackingvariables enable, or disable, which ICAs are to be monitored. The useralso has full control over managing RDHI for enabling/disabling thehistorical collection of ICAs, saving RDHI to a file, setting RDHI froma file, or clearing history.

[0011] It is one advantage of the present invention in enabling a userto very quickly capture information from a data processing system userinterface while at the same time eliminating redundant informationcaptures. For example, a user surfs the internet for a subject matterand prints out web pages, and references thereof, that are desirable.Often, the same material is linked from different web sites, ordifferent contexts from the same web site. The user may not remember ifa document was already printed. The present invention automaticallynotifies the user when the document has already been printed so the userwill prevent repeating the print.

[0012] Another advantage of the present invention is that an ICA can bemade non-repeatable so that a user is not forced to rely on human memoryfor whether or not the action was already performed. Information captureactions of a user include browsing user interfaces contexts, printinginformation (e.g. documents, web pages, or the like), downloadinginformation (e.g. files, executables, pictures, videos, or the like),clipping information (text, windows, graphics, application controls, orcombinations thereof) to a clipboard, saving information, creatingshortcuts, or other like ICAs.

[0013] A further advantage of the present invention is that RDHIcollected for invoked ICAs can be configured by a user for anyhistorical time window of ICAs. The user may save RDHI to a user namedfile for later use. The user may replace the active RDHI with apreviously saved RDHI file. The user may append previously saved RDHI tothe active RDHI. The user may also clear the active RDHI. Thus, the useris able to affect redundancy determination functionality by managingRDHI of ICAs. Also, the RDHI is a separate entity maintained outside ICAprocessing so that a system wide implementation is provided.

[0014] Yet another advantage of the present invention is that any, orall, ICAs are user configurable for being tracked to automaticallydetermine redundancy. The user controls which types of ICAs to monitor,when to monitor ICAs, and how to monitor ICAs for redundancy.

[0015] Further features and advantages of the invention, as well as thestructure and operation of various embodiments of the invention, aredescribed in detail below with reference to the accompanying drawings.In the drawings, like reference numbers generally indicate identical,functionally similar, and/or structurally similar elements. The drawingin which an element first appears is indicated by the leftmost digit(s)in the corresponding reference number.

BRIEF DESCRIPTION OF THE FIGURES

[0016] The present invention will be described with reference to theaccompanying drawings, wherein:

[0017]FIG. 1 depicts a preferred embodiment of an information captureaction configuration window according to the present invention;

[0018]FIG. 2 depicts a preferred embodiment of a redundancydetermination history information data record according to the presentinvention;

[0019]FIG. 3 depicts a block diagram of a data processing system usefulfor implementing data processing system aspects of the presentinvention;

[0020]FIG. 4A and FIG. 4b depict flowcharts for describing a preferredembodiment of the data processing system use aspects of the presentinvention, in particular the information capture action configurationaspects;

[0021]FIG. 5 depicts a flowchart for describing a preferred embodimentof the data processing system use aspects of the present invention, inparticular the information capture action processing aspects;

[0022]FIG. 6 depicts a flowchart for describing a preferred embodimentof the information capture action redundancy determination processingaspects of the present invention for information capture actions that donot utilize bounds descriptor information;

[0023]FIG. 7 depicts a flowchart for describing a preferred embodimentof the information capture action redundancy determination processingaspects of the present invention for information capture actions thatutilize bounds descriptor information; and

[0024]FIG. 8 depicts a flowchart for describing a preferred embodimentof the redundancy detection processing aspects of the present inventionwhen redundancy has been determined for an information capture action.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0025] With reference now to detail of the drawings, the presentinvention is described. Obvious error handling is omitted from theflowcharts in order to focus on the key aspects of the presentinvention.

[0026]FIG. 1 depicts a preferred embodiment of an information captureaction configuration window according to the present invention. Aninformation capture action (ICA) configuration window 100 provides oneembodiment for maintaining ICA configurations according to the presentinvention. While FIG. 1 depicts a window as may be seen on a dataprocessing system that runs a graphical user interface, other dataprocessing systems such as wireless telephones, Personal DigitalAssistants (PDAs), or any other data processing system device mayincorporate a different user interface with functionality that does notdepart from the spirit and scope of the present invention. ICAconfiguration window 100 includes a File pulldown option 102 whichcontains a selectable text list of “Alarms” for configuring the alarmsof the present invention, and “Exit” for exiting the ICA configurationwindow 100. Pulldowns are as is conventional in a windowed system.History pulldown option 104 contains a selectable text list of “Browse”for browsing RDHI of the present invention, “Clear” for clearing RDHI,“Set” for setting RDHI to a saved history file, “Append” for appending asaved history file to the active RDHI, “Save” for saving RDHI to a file,and “Pruning” for configuring variables that govern pruning of the RDHI.

[0027] The ICA configuration window 100 further includes a Help pulldownoption 106, title bar, and other features typical of conventionalwindows. ICA configuration window 100 interfaces with the user in theconventional manner as well known to those skilled in the art. Userinvocation of the <F1>key over a particular area on the window willprovide context sensitive help to the particular area, as is implementedby many conventional user interfaces. ICA configuration window 100further includes an ICA settings section 108 that includes a row bycolumn matrix of settings. An information capture actions (ICAs) column110 identifies the configurable ICAs for the particular data processingsystem which are each shown generally as ICA rows 112. Different dataprocessing system may have different information capture actions (ICAs).Tracking variable columns 114 (shown generally as columns 114) aremutually exclusive such that one radio button is permitted for an ICArow 112. Column 114 a indicates to not check for ICA redundancy (i.e.not track) so that the ICA is processed as in conventional dataprocessing systems, for example, as in the case of the ICA row 112 aconfiguration. Column 114 b indicates to always check for redundancy(i.e. always track) of the ICA as processed in the present invention,for example, as in the case of ICA row 112 b. Column 114 c indicates toonly check for redundancy of the ICA when the checkmark box 116 containsa checkmark (i.e. track when checkmark box 116 indicates to track), forexample, as in the case of ICA row 112 d. Checkmark box 116 allowsenabling or disabling all ICA rows with a radio button in column 114 c.Columns 114 (114 a-114 c) and checkmark box 116 form configurabletracking variables for whether or not to monitor ICAs. ICA settingssection 108 further includes a rule column 118 for configuring a rule ofICA rows 112. The rule is only meaningful when an ICA is set for beingtracked through column 114 b, or 114 c when checkmark box 116 is markedwith a checkmark. Eligible settings for a rule, for example in a rulebox 120, comprise a meaningful character denoting equality (=), subset(⊂), superset (⊃), or both (Ω). In one use, the user simply invokes upor down arrow keys to toggle through the eligible characters displayedin a rule box, for example, rule box 120. Equality implies that an ICAis determined to be redundant when its action is identical (i.e.equivalent) to a previously performed ICA. Subset implies that an ICA isdetermined to be redundant when its action is a subset of (within thescope of, or equivalent to) a previously performed ICA. Superset impliesthat an ICA is determined to be redundant when its action is a supersetof (contains the scope of, or is equivalent to) a previously performedICA. Both implies that an ICA is determined to be redundant when itsaction is a superset or a subset of a previously performed ICA.

[0028] For example, a visit ICA may have to do with web site page visitsin a web browser. If ICA row 112 a was marked for being tracked, theequality rule of rule box 120 indicates that the visit ICA (ICA row 112a) is only redundant when a web page is visited that was previouslyvisited (i.e. web page reference equivalent (e.g.“http://www.domain.com/path1/path2/page.html” is equivalent to“http://www.domain.com/path1/path2/page.html”)). Other user interfaceswill use a similar reference provided there is unique informationdescribing the visited user interface context. Redundancy is determinedwhen transposition to the identical user interface context is invoked.As discussed below, a web browser BACK or FWD context invocation by auser is not considered in redundancy processing. These types ofinvocations by a user are inconsequential.

[0029] A subset rule may also be assigned, for example, to the print ICA(ICA row 112 b). In the web browser example, a user may want to printout web pages that are visited, or documents referred to by web pages.The user wants to ensure the same information is not printed out morethan once as he navigates the world wide web over a long period of timein search of useful hard copy documentation. The subset option says totreat a print ICA as redundant when the print action (ICA) is a subsetof a previously performed print action (ICA of same type). For example,the user may have already printed pages 50 through 100 of a document andlater attempts to print pages 75 through 100. Pages 75 through 100 is asubset of pages 50 through 100. Thus, the present inventionautomatically determines if the information to be printed is a subset ofthat which was already printed, thereby making the current print actionwasteful. The user does not have to rely on his memory,

[0030] In another example, a superset rule may also be assigned, forexample, to the shortcuts copied ICA (ICA row 112 f). In the web browserexample, a user may want to create shortcuts on his desktop, or in afolder, for convenient invocation to a particular web page, but he wantsto capture shortcuts to the detailed information of a particular webpage, and not clutter his system with higher level web site addressesthat contain the web page. The superset option says to treat a shortcutcopy action (an ICA) as redundant when it is a superset of a previouslyperformed shortcut copy action (ICA of same type).“http://www.domain.com/path1” is a superset to“http://www.domain.com/path1/path2/page.html”. Thus, the presentinvention automatically determines if the shortcut created isunnecessary because a deeper level of web page context already has ashortcut created for it.

[0031] Finally, the both rule indicates that an ICA will be treated asredundant when an ICA is a superset to, or subset of, a previouslyperformed ICA of the same type. As will be discussed below, rules affectthe redundancy determination that is made by considering an ICAreference, for example, a web page address path, file path, or the like.Further considered, when appropriate, is bounds descriptor informationfor example which pages were actually printed, what information wasactually clipped from the user interface, etc.

[0032] ICA configuration window 100 also includes a redundancy detectionprocessing control group 122. Control group 122 contains an audiblealarm setting 124 for enabling an audible alarm upon determiningredundancy, a visual alarm setting 126 for enabling a visual alarm upondetermining redundancy, a warning prompt setting 128 for enabling apop-up warning, and a preempt option 130 to the warning prompt setting128 for specifying whether the pop-up warning should preempt all dataprocessing system use until reconciled (or acknowledged) by the user. Acheckmark placed for the preempt option 130 automatically populates acheckmark to the warning prompt setting 128. The absence of a checkmarkfor the warning prompt setting 128 causes a graying out of the preemptoption 130. The redundancy detection processing control group 122 isused to manage how the present invention should behave upon recognitionof a redundant ICA specified for monitor through tracking variablecolumns 114.

[0033] ICA configuration window 100 also includes a history collectionsetting 132 for enabling collection of ICAs to RDHI. In all window 100discussions, a checkmark present indicates enabled and the absence of acheckmark indicates disabled. Keystroke(s) (e.g. hot-keys), mouse use,or other input peripherals will also appropriately operate window 100 aswell known in the art.

[0034] In some present invention embodiments, a rule column 118 may notbe provided. In such embodiments, equality is the only rule fordetecting redundancy.

[0035]FIG. 2 depicts a preferred embodiment of a redundancydetermination history information data record according to the presentinvention. The RDHI data record 200 contains fields as shown. An ICAtype field 202 indicates the type of ICA of the data processing system,for example, a download action (an ICA). ICA field 202 will contain avalue from a set of the candidate ICA types that can be performed on thedata processing system executing the present invention. FIG. 1demonstrated six different ICA types. A reference field 204 contains theICA reference. ICA references include, and are not limited to, fullyqualified web page addresses, fully qualified web site filerepositories, fully qualified document location (e.g. File TransferProtocol (FTP) address), fully qualified system file path name, or someother unique contextual information describing the ICA for the ICA type.A bounds descriptor field 206 contains bounds information that may beapplicable to various ICA types. Bounds information includes, and is notlimited to, document page numbers, file offset and length of content, orother information that may further add detail to the reference field204. A date/time stamp field 208 contains a date/time stamp of when theICA was performed to facilitate pruning by date/time. Pruning may alsobe accomplished by the number (a depth configuration through Historypulldown option 104 Pruning selection) of data records 200 maintained inRDHI. Depending on the embodiment, RDHI data records 200 may bemaintained in a file of records, or in a database table with columns forfields.

[0036]FIG. 3 depicts a block diagram of a data processing system usefulfor implementing data processing system aspects of the presentinvention. A data processing system 300 according to the presentinvention includes at least one processor 302 coupled to a bus 304. Thedata processing system 300 also includes main memory 306, for example,random access memory (RAM). Optionally, the data processing system 300may include secondary storage devices 308 such as a hard disk drive 310,and/or removable storage device 312 such as a compact disk, floppydiskette, or the like, also connected to bus 304. In one embodiment,secondary storage devices could be remote to the data processing system300 and coupled through an appropriate communications interface.

[0037] The data processing system 300 may also include a display deviceinterface 314 for driving a connected display device (not shown). Thedata processing system 300 may further include one or more inputperipheral interface(s) 316 to input devices such as a keyboard,telephone keypad, Personal Digital Assistant (PDA) writing implements,mouse, voice interface, or the like. User actions, for example ICAs, tothe data processing system are inputs accepted by the input peripheralinterface(s) 316. The data processing system 300 may still furtherinclude one or more output peripheral interface(s) 318 to output devicessuch as a printer, facsimile device, or the like.

[0038] Data processing system 300 will include a communicationsinterface 320 for connecting data processing system 300 to an other dataprocessing system via communications network 322 over a communicationsconnection managed over analog signal waves, digital signal waves,copper wire, optical fiber, or the like.

[0039] Data processing system programs (also called control logic) maybe completely inherent in the processor 302 being a customizedsemiconductor, or may be stored in main memory 306 for execution byprocessor 302 as the result of a read-only memory (ROM) load (notshown), or may be loaded from a secondary storage device into mainmemory 306 for execution by processor 302. Such programs, when executed,enable the data processing system 300 to perform features of the presentinvention as discussed herein. Accordingly, such data processing systemprograms represent controllers of the data processing system.

[0040] In one embodiment, the invention is directed to a control logicprogram product comprising a processor 302 readable medium havingcontrol logic (software) stored therein. The control logic, whenexecuted by processor 302, causes the processor 302 to perform functionsof the invention as described herein.

[0041] In another embodiment, the invention is implemented primarily inhardware, for example, using a prefabricated component state machine (ormultiple state machines) in a semiconductor element such as processor302.

[0042] Those skilled in the art will appreciate various modifications tothe data processing system 300 without departing from the spirit andscope of the invention.

[0043]FIG. 4A and FIG. 4b depict flowcharts for describing a preferredembodiment of the data processing system use aspects of the presentinvention, in particular the information capture action configurationaspects. A user begins using a data processing system user interface atblock 402 where processing continues to block 404. In one embodiment,the user interface of the present invention data processing system is aweb browser used to navigate the internet. In other embodiments, a webserver interface provides the features of the present invention. Instill other embodiments, a client interface (e.g. JAVA applet) providesthe features of the present invention. Other embodiments include anydata processing system application, or operating system, thatincorporates or integrates the present invention. Block 404 interfaceswith the user until a user action appropriate for present inventiondiscussion occurs, as handled by following blocks. When a user actionrelevant for discussion occurs, processing continues to block 406.

[0044] If block 406 determines that the user selected to launch ICAconfiguration, then block 408 accesses current ICA configurations, block410 displays the ICA configuration window 100 with the prescribedconfigurations, and processing continues back to block 404. Block 408preferably accesses a configuration file containing defaults if its thefirst execution of block 408. The configuration file is preferablymaintained locally, for example, to hard disk drive 310. If it is notthe first execution of block 408, then previously saved ICAconfigurations are accessed from the configuration file (set through theICA configuration interface). Various block 410 embodiments will providean ICA configuration interface appropriate to the particular dataprocessing system, but containing the same semantics as those describedby FIG. 1.

[0045] If block 406 determines that the user did not select to launchICA configuration, then processing continues to block 412. If block 412determines that the user selected to exit ICA configuration, thenprocessing continues to block 414 where the configuration interface isterminated, for example, destroying the ICA configuration window 100.Thereafter, processing continues back to block 404.

[0046] If block 412 determines that the user did not select to exit ICAconfiguration, then processing continues to block 416. If block 416determines that the user selected to set an ICA tracking variable (114a, 114 b, or 114 c), then block 418 highlights any radio button of theselection, block 420 updates ICA configurations preferably maintained inthe configuration file, and processing continues back to block 404.

[0047] If block 416 determines that the user did not select to set anICA tracking variable, then processing continues to block 422. If block422 determines that the user selected to set an ICA rule (see rulecolumn 118), then block 424 toggles to the next character of selectionsas described above, and processing continues to block 420. Block 422recognizes user toggles to a rule, for example of rule box 120, andblock 424 toggles the ordered candidates appropriately.

[0048] If block 422 determines that the user did not select to set anICA rule, then processing continues to block 426. If block 426determines that the user selected to modify a setting of the redundancydetection processing (e.g. control group 122), then block 428 updatesthe checkmark(s) as described above, and processing continues to block420.

[0049] If block 426 determines that the user did not select to modify asetting of the redundancy detection processing, then processingcontinues to block 430. If block 430 determines that the user selectedto set the history collection (e.g. setting 132), then block 432 updatesthe checkmark as described above, and processing continues to block 420.

[0050] If block 430 determines that the user did not select to set thehistory collection setting 132, then processing continues to block 434by way of off page connector 4500. If block 434 determines that the userselected to set alarms (e.g. from the File pulldown option 102), thenblock 436 interfaces with the user to configure a validated audio file(or a system beep) or a validated visual file (or a system displaymethodology). The system defaults these appropriately so the user is notrequired to configure anything. The audio file is preferably a wavefile. The visual (graphic) file is preferably of a .gif or .jpg type fora small region of display, or a system designated area of display, onthe user interface of the data processing system. The audio file is usedby processing associated with the audible alarm setting 124. The visualfile is used by processing associated with the visual alarm setting 126.One embodiment may only support a system beep and system method forvisual display. Another embodiment may not support alarm configurationat all (i.e. system implements methodology). Thereafter, block 438copies any files provided by the user at block 436 to a safe locationand references them appropriately in the ICA configurations. Processingthen continues back to block 404 by way of off page connector 4000.

[0051] If block 434 determines that the user did not select to setalarms, then processing continues to block 440. If block 440 determinesthat the user selected to browse the RDHI, for example, by way ofHistory pulldown option 104, then block 442 produces a scrollable windowdisplaying the RDHI, block 444 interfaces with the user until browsingis complete, and processing continues back to block 404.

[0052] If block 440 determines that the user did not select to browseRDHI, then processing continues to block 446. If block 446 determinesthat the user selected to clear RDHI, then block 448 truncates RDHI tozero records and processing continues back to block 404.

[0053] If block 446 determines that the user did not select to clearRDHI, then processing continues to block 450. If block 450 determinesthat the user selected to set RDHI, then block 452 interfaces with theuser for a validated history file, block 454 sets active RDHI to thedata records 200 of the file, and processing continues back to block404.

[0054] If block 450 determines that the user did not select to set RDHI,then processing continues to block 456. If block 456 determines that theuser selected to append to RDHI, then block 458 interfaces with the userfor a validated history file, block 460 appends data records 200 fromthe file to active RDHI, and block 462 automatically updates, ifrequired, pruning configurations according to the ending result of theappend operation. Updating the pruning configurations prevents the userfrom having to set pruning configurations prior to performing an appendin order to prevent undesirable pruning. Thereafter, processingcontinues back to block 404.

[0055] If block 456 determines that the user did not select to append toRDHI, then processing continues to block 464. If block 464 determinesthat the user selected to save RDHI, then block 466 interfaces with theuser for a validated target history file, block 468 writes active RDHIdata records 200 to the file, and processing continues back to block404.

[0056] If block 464 determines that the user did not select to saveRDHI, then processing continues to block 470. If block 470 determinesthat the user selected to set pruning configurations, then block 472interfaces with the user to modify settings, block 474 updates the ICAconfigurations (preferably maintained in the configuration file), block476 prunes (if applicable) RDHI with the new settings, and processingcontinues back to block 404. Block 472 preferably allows configuringpruning of RDHI by date/time, or number of records, combinationsthereof, or any reasonable pruning technique as well known to thoseskilled in the art.

[0057] If block 470 determines that the user did not select to configurepruning, then processing continues to block 502 by way of off pageconnector 5000. Blocks 430 through 432, and 446 through 468 provide thecapability to set RDHI for containing ICAs previously performed in anytime window of history.

[0058]FIG. 5 depicts a flowchart for describing a preferred embodimentof the data processing system use aspects of the present invention, inparticular the information capture action processing aspects. Block 404monitors for user invocations of ICAs as the user uses the dataprocessing system, and FIG. 5 further determines which ICA. If block 502determines that the user performed a visit ICA, then processingcontinues to block 504. A visit ICA in the embodiment described above isuser invocation, for example in a web browser, to transpose to a new website (page) address.

[0059] If block 504 determines that the user performed a visit ICAinconsequentially, for example, by use of the forward (FWD) context orbackward context (BACK) invocation of the web browser, then processingflows to block 506. Performing an ICA as the result of using the webbrowser FWD or BACK control is an inconsequential user invocationcausing the ICA, and therefore is processed as not being redundant.Block 506 performs the ICA by transposing to the user interface context(e.g. web page address transposition). Thereafter, block 508 prunes RDHIaccording to ICA configurations, block 510 checks the ICAconfigurations' history collection setting 132. If the historycollection setting 132 is enabled, then block 510 inserts a RDHI datarecord 200 to the RDHI with ICA type field 202 set to the Visit,reference field 204 set to the fully qualified web page address, boundsdescriptor field 206 set to null, and date/time stamp field 208 set tothe current system date/time. Processing then continues back to block404 by way of off page connector 4000. Thus, block 510 maintains ICAs tothe RDHI.

[0060] If block 504 determines that the visit ICA was notinconsequential, then processing continues to block 602 of FIG. 6 by wayof off page connector 6000. Transposing to a web page as the result ofan invoked link, manually entered web address, invoked link fromtransposition history or other source, or other invocations that causetransposition, are treated as an ICA. FIG. 6 processing is describedbelow.

[0061] If block 502 determines that the user did not perform a visitICA, then processing continues to block 512. If block 512 determinesthat the user performed a print ICA, then block 514 accesses the ICAbounds and processing continues to block 702 of FIG. 7 by way of offpage connector 7000. FIG. 7 is described below. A print ICA is performedby the user upon user invocation of actually performing a print action.All parameters of the print have already been specified at block 404 andthe user performs the last action, for example, hitting the enter key todo the print. Block 512 determines the print ICA and then block 514accesses the bounds parameters of the print which have already beenspecified, for example, all of the document, the page numbers, theoffset and length into a selection, or the like.

[0062] If block 512 determines that the user did not perform a printICA, then processing continues to block 516. If block 516 determinesthat the user performed a download ICA, then processing continues toblock 602 of FIG. 6 by way of off page connector 6000. A download ICA isperformed by the user upon user invocation of actually performing adownload, for example from the internet. All parameters of the downloadhave already been specified at block 404 and the user performs the lastaction, for example, hitting the enter key to do the download. Block 516determines the download ICA which may have been performed, for example,as a web page interface action, a right mouse click on a downloadablecontent item of a web page, or the like.

[0063] If block 516 determines that the user did not perform a downloadICA, then processing continues to block 518. If block 518 determinesthat the user performed a clipboard ICA (clipboard clip), then block 520accesses the ICA bounds and processing continues to block 702 of FIG. 7.A clipboard ICA is performed by the user upon user invocation ofactually performing a clipboard action. All parameters of the clipboardaction have already been specified at block 404 and the user performsthe last action, for example, selecting to do the clip. Block 518determines the clipboard ICA and then block 520 accesses the boundsparameters of the clip which have already been specified, for example,all of a context (e.g. entire document or web page), the offset andlength into a selection (e.g. html file), or the like.

[0064] If block 518 determines that the user did not perform a clipboardICA, then processing continues to block 522. If block 522 determinesthat the user performed a save ICA, then processing continues to block602 of FIG. 6 by way of off page connector 6000. A save is performed bythe user upon user invocation of actually performing a save, for examplefrom the internet. A user may right mouse click on a content item of aweb page and choose to save it locally, for example, a graphic image, ananimated graphic image, a text content, or any other content. Allparameters of the save have already been specified at block 404 and theuser performs the last action, for example, hitting the enter key to dothe save. Block 522 determines the save ICA which may have beenperformed.

[0065] If block 522 determines that the user did not perform a save ICA,then processing continues to block 524. If block 524 determines that theuser performed a shortcut copy ICA, then processing continues to block602 of FIG. 6. A shortcut copy ICA is performed by the user upon userinvocation of actually performing a shortcut copy, for example, a shortcut to a web page of the internet. A user may right mouse click andconveniently create a short cut link to the web page. Any applicableparameters of the shortcut copy have already been specified at block 404and the user performs the last action, for example, hitting the enterkey to do the save to a particular folder. Block 524 determines theshortcut copy ICA which may have been performed. If block 524 determinesthat the user did not perform a shortcut copy ICA, then processingcontinues back to block 404.

[0066]FIG. 6 depicts a flowchart for describing a preferred embodimentof the information capture action redundancy determination processingaspects of the present invention for information capture actions that donot utilize bounds descriptor information. Block 602 accesses ICAconfigurations for ICA tracking variables, and the particular ICA rule(i.e. rule for ICA type) that caused execution of FIG. 6 (e.g. visit,download, save, or shortcut copy), and processing continues to block603. If block 603 determines that the ICA that caused execution of FIG.6 is being tracked, then processing continues to block 604. If block 604determines that the rule is set to equality, then block 606 searchesRDHI for a data record 200 containing the ICA type field of the ICAprocessed by FIG. 6, and a reference field 204 set to the reference ofthe ICA processed by FIG. 6. Thereafter, if block 608 determines that amatching data record was found, then processing continues to block 802of FIG. 8 by way of off page connector 8000. FIG. 8 processing isdiscussed below. If block 608 determines that there was not a matchingdata record found, then processing continues to block 506 of FIG. 5 byway of off page connector 5500. Block 506 performs the ICA; visiting theuser interface context if a visit ICA, downloading the file if adownload ICA, saving the file if a save ICA, or copying the shortcut ifa shortcut copy ICA. Thereafter, block 508 prunes RDHI according to ICAconfigurations, and block 510 inserts (if collect history setting 132enabled) a RDHI data record 200 to the RDHI with the ICA type field 202set appropriately (e.g. visit, download, save, or shortcut copy),reference field 204 set appropriately (e.g. fully qualified userinterface context path if a visit, fully qualified file path name if adownload or save, fully qualified user interface context if a shortcutcopy), bounds descriptor field 206 set to null, and date/time stampfield 208 set to the current system date/time. Processing then continuesback to block 404. If block 603 determines that the ICA causing FIG. 6processing is not being tracked, then processing continues to block 506.

[0067] Returning now to block 604, if it is determined that the equalityrule is not set for the ICA causing FIG. 6 processing, then processingcontinues to block 610. If block 610 determines that the ICA rule is setto subset, then block 612 searches RDHI for a data record 200 containingthe ICA type field of the ICA processed by FIG. 6, and a reference field204 that is a superset to the reference of the ICA processed by FIG. 6.For example, a reference that is a superset is an equivalent string to,or contains the scope of, the ICA reference. For example,“http://www.domainx.com/webdir1/” is a superset to““http://www.domainx.com/webdir1/webdir2.howdy.html” because it has abroader scope of the more detailed reference (detailed reference iswithin the superset's scope). Thereafter, if block 608 determines a datarecord was found, then processing continues to block 802. If block 608determines that there was not a data record found, then processingcontinues to block 506.

[0068] Returning now to block 610, if it is determined that the subsetrule is not set for the ICA causing FIG. 6 processing, then processingcontinues to block 614. If block 614 determines that the ICA rule is setto superset, then block 616 searches RDHI for a data record 200containing the ICA type field of the ICA processed by FIG. 6, and areference field 204 that is a subset to the reference of the ICAprocessed by FIG. 6. For example, a reference that is a subset is anequivalent string to, or within the scope of, the ICA reference. Forexample, “http://www.domainx.com/webdir1/webdir2/howdy.html” is a subsetof ““http://www.domainx.com/webdir1/” because its within the scope ofthe broader reference. Thereafter, if block 608 determines a data recordwas found, then processing continues to block 802. If block 608determines that there was not a data record found, then processingcontinues to block 506.

[0069] Returning now to block 614, if it is determined that the subsetrule is not set for the ICA causing FIG. 6 processing, then processingcontinues to block 618 where the rule must be a both rule (i.e. supersetor subset). Block 618 searches RDHI for a data record 200 containing theICA type field of the ICA processed by FIG. 6, and a reference field 204that is a subset, or superset, to the reference of the ICA processed byFIG. 6. Thereafter, if block 608 determines a data record was found,then processing continues to block 802. If block 608 determines thatthere was not a data record found, then processing continues to block506. Thus, blocks 606, 612, 616, and 618 perform matching of the ICA(that caused FIG. 6 processing) against the RDHI (for presence ofpreviously performed ICAs) to determine if the ICA is redundant. Block603 enables monitoring ICAs according to configurable trackingvariables.

[0070]FIG. 7 depicts a flowchart for describing a preferred embodimentof the information capture action redundancy determination processingaspects of the present invention for information capture actions thatutilize bounds descriptor information. Block 702 accesses ICAconfigurations for ICA tracking variables 114, and the particular ICArule (i.e. rule for ICA type) that caused execution of FIG. 7 (e.g.print, clipboard), and processing continues to block 703. If block 703determines that the ICA that caused FIG. 7 processing is being tracked,then processing continues to block 704. If block 704 determines that therule is set to equality, then block 706 retrieves all RDHI data records200 containing the ICA type field of the ICA processed by FIG. 7, and areference field 204 set to the reference of the ICA processed by FIG. 7.Thereafter, if block 708 determines that one or more data records werefound, then block 710 loops on the list of data records 200,specifically the bounds descriptor field 206, to check for equivalenceof bounds descriptor information between the ICA processed by FIG. 7 anda previously performed ICA in a loop iteration. Loop processingcompletes as soon as a match is found, or if the list search isexhausted. Thereafter, if block 712 determines that a matching datarecord was found, then processing continues to block 802 of FIG. 8 byway of off page connector 8000. FIG. 8 processing is discussed below. Ifblock 712 determines that there was not a matching data record found,then processing continues to block 506 of FIG. 5 by way of off pageconnector 5500. Block 506 performs the ICA; printing if a print ICA,clipping if a clip ICA. Thereafter, block 508 prunes RDHI according toICA configurations, and block 510 inserts (if collect history setting132 enabled) a RDHI data record 200 to the RDHI with the ICA type field202 set appropriately (e.g. print or clip), reference field 204 setappropriately (e.g. fully qualified document path name if a document toprint, fully qualified user interface context (e.g. web page address) ifa print, etc., or fully qualified user interface context (e.g. web pageaddress) if a clip), bounds descriptor field 206 set to any applicablebounds information, and date/time stamp field 208 set to the currentsystem date/time. For example, bounds information includes which printpages, which offset and length of print source, which offset and lengthof clipped source, or the like. Processing then continues back to block404. If block 708 determines that no data records 200 were found, thenprocessing continues to block 506. If block 703 determines that the ICAcausing FIG. 7 processing is not being tracked, then processingcontinues to block 506.

[0071] Returning now to block 704, if it is determined that the equalityrule is not set for the ICA causing FIG. 7 processing, then processingcontinues to block 714. If block 714 determines that the ICA rule is setto subset, then block 716 retrieves all RDHI data records 200 containingthe ICA type field of the ICA processed by FIG. 7, and a reference field204 that is a superset to the reference of the ICA processed by FIG. 7.Thereafter, if block 718 determines that one or more data records werefound, then block 720 loops on the list of data records 200,specifically the bounds descriptor field 206, to check for a superset ofbounds descriptor information in the RDHI data record when compared tothe ICA processed by FIG. 7. Loop processing completes as soon as asuperset is found, or if the list search is exhausted. Bounds descriptorinformation that is a superset is an equivalent setting, or contains(has broader scope to) the setting, of the ICA bounds descriptor. Forexample, “pages 8 to 12” is a superset of “pages 9 to 12”. Thereafter,if block 712 determines that a data record was found, then processingcontinues to block 802. If block 712 determines that there was not adata record found, then processing continues to block 506. If block 718determines that no data records 200 were found, then processingcontinues to block 506.

[0072] Returning now to block 714, if it is determined that the subsetrule is not set for the ICA causing FIG. 7 processing, then processingcontinues to block 722. If block 722 determines that the ICA rule is setto superset, then block 724 retrieves all RDHI data records 200containing the ICA type field of the ICA processed by FIG. 7, and areference field 204 that is a subset to the reference of the ICAprocessed by FIG. 7. Thereafter, if block 726 determines that one ormore data records were found, then block 728 loops on the list of datarecords 200, specifically the bounds descriptor field 206, to check fora subset of bounds descriptor information in the RDHI data record whencompared to the ICA processed by FIG. 7. Loop processing completes assoon as a subset is found, or if the list search is exhausted. Boundsdescriptor information that is a subset is an equivalent setting to, orcontains a narrower scope of, the setting of the ICA bounds descriptor.For example, “offset byte 58 with a clipped length of 784 bytes” is asubset of “offset byte 2 with a clipped length of 2036 bytes”.Thereafter, if block 712 determines that a data record was found, thenprocessing continues to block 802. If block 712 determines that therewas not a data record found, then processing continues to block 506. Ifblock 726 determines that no data records 200 were found, thenprocessing continues to block 506.

[0073] Returning now to block 722, if it is determined that the supersetrule is not set for the ICA causing FIG. 7 processing, then processingcontinues to block 730 where the rule must be a both rule (i.e. supersetor subset). Block 730 retrieves all RDHI data records 200 containing theICA type field of the ICA processed by FIG. 7, and a reference field 204that is a subset, or superset, to the reference of the ICA processed byFIG. 7. Thereafter, if block 732 determines that one or more datarecords were found, then block 734 loops on the list of data records200, specifically the bounds descriptor field 206, to check for asubset, or superset, of bounds descriptor information in the RDHI datarecord when compared to the ICA processed by FIG. 7. Loop processingcompletes as soon as a subset, or superset, is found, or if the listsearch is exhausted. Thereafter, if block 712 determines that a datarecord was found, then processing continues to block 802. If block 712determines that there was not a data record found, then processingcontinues to block 506. If block 732 determines that no data records 200were found, then processing continues to block 506.

[0074] Thus, blocks 706, 710, 716, 720, 724, 728, 730, and 734 performmatching of the ICA (that caused FIG. 7 processing) against the RDHI(for presence of previously performed ICAs) to determine if the ICA isredundant. Block 703 enables monitoring ICAs according to configurabletracking variables.

[0075] Block 506 performs all processing associated with the ICA. Anydata that is created as the result of the ICA is completely processed atblock 506. For example, a print action may produce a spooled file, aprint tracking record accessed by various print support programs, orother data that is directly a result of the ICA. Likewise, a save ICA ordownload ICA may update a log in addition to placing data to a specifiedlocation. Any ICA may cause data to be created at block 506 that isdirectly a result of the ICA. Blocks 508 and 510 operate outside of ICAprocessing. The RDHI is a separate entity maintained for solelydetermining redundancy of ICAs. RDHI is similar to prior art in that itis automatically pruned at block 508 in accordance with userconfigurations. An alternative embodiment to the present invention couldintegrate RDHI with prior art history information, for example of theMicrosoft Internet Explorer.

[0076]FIG. 8 depicts a flowchart for describing a preferred embodimentof the redundancy detection processing aspects of the present inventionwhen redundancy has been determined for an information capture action.FIG. 8 provides an alert when the ICA is redundant. Block 802 accessesICA configurations for redundancy processing, and processing continuesto block 804. If block 804 determines that an audible alarm isconfigured (i.e. checkmark at audible alarm setting 124), then block 806plays the configured audio file (or just a system beep). Processingcontinues to block 808. If block 804 determines that an audible alarmoption was not specified, then processing continues to block 808.

[0077] If block 808 determines that a visual alarm is configured (i.e.checkmark at visual alarm setting 126), then block 810 presents thevisual file (or just a system method for the visual alarm). Processingcontinues to block 812. If block 808 determines that a visual alarmoption was not specified, then processing continues to block 812. Thevisual alarm may be presented by block 810 to a well known area of theuser interface, or in a sub-area (e.g. window) as is appropriate for theembodiment. The visual alarm may be presented dynamically based onactive user interface objects (e.g. windows) and their positions at thetime of doing visual alarm presentation. Block 810 may also present thevisual alarm for a configured time period, for example, when doing adynamic presentation based on the current user interface state so as toensure visibility of the alarm.

[0078] If block 812 determines that a preempt prompt is configured (i.e.checkmark at preempt option 130), then block 814 displays a pop-upprompt requiring user reconciliation (e.g. pop-up window requiring ananswer to CANCEL ICA or DO THE ICA). The prompt preferably contains amessage stating the current ICA is redundant, and does the user reallywant to do it. The preempt prompt also prevents any other dataprocessing system use until the user responds to the prompt. Thereafter,block 816 continues only when the user responds. If block 816 determinesthat the user selected to continue with performing the ICA, thenprocessing continues to block 506 by way of off page connector 5500. Ifblock 816 determines that the user selected to cancel the ICA, thenprocessing continues back to block 404 by way of off page connector4000.

[0079] Referring back to block 812, if it is determined that a preemptprompt option was not configured, then processing continues to block818. If block 818 determines that a warning prompt was configuredwithout the preempt option (i.e. checkmark at warning prompt setting 128but not at preempt option 130), then block 820 displays a pop-up promptpreferably containing a warning message stating the current ICA isredundant. The warning prompt (e.g. pop-up window) can be removedwhenever the user wants to remove it. Thereafter, processing continuesback to block 404. Thus, FIG. 8 automatically cancels the ICA exceptwhen a preempt prompt is presented to the user and the user responds forcontinuing with performing the ICA. Both prompts presented at blocks 814and 820 require user action before leaving the user interface.

[0080] While various embodiments of the present invention have beendescribed above, it should be understood that they have been presentedby way of example only, and not limitation. Thus, the breadth and scopeof the present invention should not be limited by any of theabove-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents.

What is claimed is:
 1. A method in a data processing system for enablinga user to efficiently capture information, said method comprising thesteps of: monitoring for user invocation of an information captureaction as a user uses said data processing system; determining, uponsaid user invocation, if said information capture action is a redundantinformation capture action by searching redundancy determination historyinformation for presence of a previously performed information captureaction that matches said information capture action; and providing analert to said user when said information capture action is a redundantinformation capture action.
 2. The method of claim 1 wherein said stepof providing an alert further includes the step of automaticallycanceling said information capture action.
 3. The method of claim 1wherein said step of providing an alert comprises the step of providinga warning prompt, said warning prompt requiring user action beforeleaving the user interface.
 4. The method of claim 1 further comprisingthe step of automatically maintaining said information capture action tosaid redundancy determination history information.
 5. The method ofclaim 1 wherein said step of monitoring for user invocation of aninformation capture action further includes the step of monitoringaccording to user configurable tracking variables.
 6. The method ofclaim 1 wherein said redundancy determination history information isuser configurable for containing information capture actions previouslyperformed in any time window.
 7. The method of claim 1 wherein said stepof determining if said information capture action is a redundantinformation capture action by searching redundancy determination historyinformation for presence of a previously performed information captureaction that matches said information capture action comprises the stepof determining if said information capture action is a redundantinformation capture action by searching redundancy determination historyinformation for presence of a previously performed information captureaction that is a subset of said information capture action.
 8. Themethod of claim 1 wherein said step of determining if said informationcapture action is a redundant information capture action by searchingredundancy determination history information for presence of apreviously performed information capture action that matches saidinformation capture action comprises the step of determining if saidinformation capture action is a redundant information capture action bysearching redundancy determination history information for presence of apreviously performed information capture action that is a superset ofsaid information capture action.
 9. The method of claim 1 wherein saidstep of determining if said information capture action is a redundantinformation capture action further includes the step of determining thatthe information capture action is not redundant when an inconsequentialuser invocation causes said information capture action.
 10. The methodof claim 1 further including the step of accepting user configurationsaffecting processing behavior of said data processing system.
 11. A dataprocessing system for enabling a user to efficiently captureinformation, said data processing system comprising: means formonitoring for user invocation of an information capture action as auser uses said data processing system; means for determining, upon saiduser invocation, if said information capture action is a redundantinformation capture action by searching redundancy determination historyinformation for presence of a previously performed information captureaction that matches said information capture action; and means forproviding an alert to said user when said information capture action isa redundant information capture action.
 12. The system of claim 11wherein said means for providing an alert further includes means forautomatically canceling said information capture action.
 13. The systemof claim 11 wherein said means for providing an alert comprises meansfor providing a warning prompt, said warning prompt requiring useraction before leaving the user interface.
 14. The system of claim 11further comprising means for automatically maintaining said informationcapture action to said redundancy determination history information. 15.The system of claim 11 wherein said means for monitoring for userinvocation of an information capture action further includes means formonitoring according to user configurable tracking variables.
 16. Thesystem of claim 11 wherein said redundancy determination historyinformation is user configurable for containing information captureactions previously performed in any time window.
 17. The system of claim11 wherein said means for determining if said information capture actionis a redundant information capture action by searching redundancydetermination history information for presence of a previously performedinformation capture action that matches said information capture actioncomprises means for determining if said information capture action is aredundant information capture action by searching redundancydetermination history information for presence of a previously performedinformation capture action that is a subset of said information captureaction.
 18. The system of claim 11 wherein said means for determining ifsaid information capture action is a redundant information captureaction by searching redundancy determination history information forpresence of a previously performed information capture action thatmatches said information capture action comprises means for determiningif said information capture action is a redundant information captureaction by searching redundancy determination history information forpresence of a previously performed information capture action that is asuperset of said information capture action.
 19. The system of claim 11wherein said means for determining if said information capture action isa redundant information capture action further includes means fordetermining that the information capture action is not redundant when aninconsequential user invocation causes said information capture action.20. A data processing system for enabling a user to efficiently printinformation, said data processing system comprising: means formonitoring for user invocation of a print action as a user uses saiddata processing system; means for determining, upon said userinvocation, if said print action is a redundant print action bysearching redundancy determination history information for presence of apreviously performed print action that matches said print action; andmeans for providing an alert to said user when said print action is aredundant print action.